From c2bd238e887e586c36d344d6b6c08e326cb5c3da Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Sat, 14 May 2005 01:04:15 +0000 Subject: [PATCH] Update for cairo-xlib API change. 2005-05-13 Owen Taylor * gdk/x11/gdkdrawable-x11.c: Update for cairo-xlib API change. * gdk/x11/gdkpixmap-x11.[ch] gdk/gdk.symbols: Export gdk_pixmap_impl_x11_get_type(), needed in gdkdrawable-x11.c. --- ChangeLog | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gdk/gdk.symbols | 8 ++++++++ gdk/x11/gdkdrawable-x11.c | 24 +++++++++++++----------- gdk/x11/gdkpixmap-x11.c | 2 +- gdk/x11/gdkpixmap-x11.h | 2 ++ 7 files changed, 45 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6854dc7bd9..f377a7a21f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-05-13 Owen Taylor + + * gdk/x11/gdkdrawable-x11.c: Update for cairo-xlib API change. + + * gdk/x11/gdkpixmap-x11.[ch] gdk/gdk.symbols: Export + gdk_pixmap_impl_x11_get_type(), needed in gdkdrawable-x11.c. + 2005-05-11 Owen Taylor * tests/testgtk.c (on_alpha_window_expose): Fix to use diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 6854dc7bd9..f377a7a21f 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +2005-05-13 Owen Taylor + + * gdk/x11/gdkdrawable-x11.c: Update for cairo-xlib API change. + + * gdk/x11/gdkpixmap-x11.[ch] gdk/gdk.symbols: Export + gdk_pixmap_impl_x11_get_type(), needed in gdkdrawable-x11.c. + 2005-05-11 Owen Taylor * tests/testgtk.c (on_alpha_window_expose): Fix to use diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 6854dc7bd9..f377a7a21f 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +2005-05-13 Owen Taylor + + * gdk/x11/gdkdrawable-x11.c: Update for cairo-xlib API change. + + * gdk/x11/gdkpixmap-x11.[ch] gdk/gdk.symbols: Export + gdk_pixmap_impl_x11_get_type(), needed in gdkdrawable-x11.c. + 2005-05-11 Owen Taylor * tests/testgtk.c (on_alpha_window_expose): Fix to use diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols index 8e70365ba0..96eaf740ac 100644 --- a/gdk/gdk.symbols +++ b/gdk/gdk.symbols @@ -608,6 +608,14 @@ gdk_gc_get_screen #endif #endif +#if IN_HEADER(__GDK_PIXMAP_X11_H__) +#if IN_FILE(__GDK_PIXMAP_X11_C__) +#ifdef GDK_PIXMAPING_X11 +gdk_pixmap_impl_x11_get_type G_GNUC_CONST +#endif +#endif +#endif + #if IN_HEADER(__GDK_WINDOW_X11_H__) #if IN_FILE(__GDK_WINDOW_X11_C__) #ifdef GDK_WINDOWING_X11 diff --git a/gdk/x11/gdkdrawable-x11.c b/gdk/x11/gdkdrawable-x11.c index 7922aaeee0..a2cc383484 100644 --- a/gdk/x11/gdkdrawable-x11.c +++ b/gdk/x11/gdkdrawable-x11.c @@ -1453,18 +1453,14 @@ gdk_x11_ref_cairo_surface (GdkDrawable *drawable) visual = gdk_drawable_get_visual (drawable); - if (GDK_IS_WINDOW (drawable)) - impl->cairo_surface = cairo_xlib_surface_create_for_window_with_visual (GDK_SCREEN_XDISPLAY (impl->screen), - impl->xid, - GDK_VISUAL_XVISUAL (visual)); - else if (visual) - impl->cairo_surface = cairo_xlib_surface_create_for_pixmap_with_visual (GDK_SCREEN_XDISPLAY (impl->screen), - impl->xid, - GDK_VISUAL_XVISUAL (visual)); + if (visual) + impl->cairo_surface = cairo_xlib_surface_create_with_visual (GDK_SCREEN_XDISPLAY (impl->screen), + impl->xid, + GDK_VISUAL_XVISUAL (visual)); else if (gdk_drawable_get_depth (drawable) == 1) - impl->cairo_surface = cairo_xlib_surface_create_for_pixmap (GDK_SCREEN_XDISPLAY (impl->screen), - impl->xid, - CAIRO_FORMAT_A1); + impl->cairo_surface = cairo_xlib_surface_create (GDK_SCREEN_XDISPLAY (impl->screen), + impl->xid, + CAIRO_FORMAT_A1); else { g_warning ("Using Cairo rendering requires the drawable argument to\n" @@ -1475,6 +1471,12 @@ gdk_x11_ref_cairo_surface (GdkDrawable *drawable) return NULL; } + if (GDK_IS_PIXMAP_IMPL_X11 (drawable)) + { + GdkPixmapImplX11 *pix_impl = GDK_PIXMAP_IMPL_X11 (drawable); + cairo_xlib_surface_set_size (impl->cairo_surface, pix_impl->width, pix_impl->height); + } + cairo_surface_set_user_data (impl->cairo_surface, &gdk_x11_cairo_key, drawable, gdk_x11_cairo_surface_destroy); } diff --git a/gdk/x11/gdkpixmap-x11.c b/gdk/x11/gdkpixmap-x11.c index 501c4c3edd..540d9ac30b 100644 --- a/gdk/x11/gdkpixmap-x11.c +++ b/gdk/x11/gdkpixmap-x11.c @@ -66,7 +66,7 @@ static void gdk_pixmap_impl_x11_finalize (GObject *object); static gpointer parent_class = NULL; -static GType +GType gdk_pixmap_impl_x11_get_type (void) { static GType object_type = 0; diff --git a/gdk/x11/gdkpixmap-x11.h b/gdk/x11/gdkpixmap-x11.h index 9dc6727ffb..b375c696cf 100644 --- a/gdk/x11/gdkpixmap-x11.h +++ b/gdk/x11/gdkpixmap-x11.h @@ -63,6 +63,8 @@ struct _GdkPixmapImplX11Class }; +GType gdk_pixmap_impl_x11_get_type (void); + #ifdef __cplusplus } #endif /* __cplusplus */ -- 2.30.2